C语言

您所在的位置:网站首页 点赞 英文单词 C语言

C语言

2024-07-15 12:56| 来源: 网络整理| 查看: 265

目录

题目要求

代码实现

题目要求

将一句英语短句中的单词进行倒置,标点符号不倒置

如:

输入:"I like chongqing very much,"

输出:"much, very chongqing like I"

代码实现 #include #include //逆置函数 void reverse(char* left, char* right) { while (left < right) { char tmp = *left; *left = *right; *right = tmp; left++; right--; } } int main() { //输入 char arr[100]; gets(arr); //逆置字符串 int len = strlen(arr); reverse(arr, arr + len - 1); //逆置各个单词 char* start = arr; char* cur = arr; while (*cur != '\0') { //找到每个单词的尾地址 while (*cur != ' ' && *cur != '\0') cur++; //逆置每个单词 reverse(start, cur - 1); start = cur + 1; if (*cur == ' ') cur++; } //输出 printf("%s\n", arr); return 0; }

代码解析: 

先逆置整个字符串,再逆置各个单词

举例说明:

"I like chongqing very much,"

逆置整个字符串

",hcum yrev gniqgnohc ekil I"

逆置各个单词

"much, very chongqing like I"

解析:void reverse(char* left, char* right)

封装一个逆置函数,用来逆置 整个字符串 和 各个单词

解析:int len = strlen(arr);

字符串的长度

解析:reverse(arr, arr + len - 1);

逆置整个字符串,传递字符串的 起始地址arr,和字符串的 结束地址arr + len(字符串长度) - 1

解析:while (*cur != '\0') 及内部循环

start指针 指向单词首地址,cur指针 找空格,找到空格后利用 reverse函数 逆置

逆置完一个单词后,start指针 指向下一个单词的首地址,利用外部 while循环,cur指针 重复找空格,最后完成所有单词的逆置 

代码验证:



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3